package com.rtmanager.data;

import java.util.regex.Pattern;

import android.util.Log;

/**
 * Classe pour une entrée de l'historique d'un ticket
 * @author fab
 *
 */
class TicketHistoryEntry {
	private String content;
	private Boolean hasContent;
	private String type;
	
	
	
	public TicketHistoryEntry(String strTicketHistoryEntry) {
		/* indique si la ligne en cours fait partie du contenu */
		Boolean isContent=false;
		type="";
		content="";
		hasContent=true;
		String[] strListHistoryEntry = strTicketHistoryEntry.split("\n");
		
		for( int i=0; i < strListHistoryEntry.length && hasContent ; i++ ){
			String strLine = strListHistoryEntry[i];
			
			/* ligne avec un attribut et sa valeur */
			if ( strLine.matches("^[^:]+: .*")) {
				String[] variable = strLine.split(":");
				
				if (variable.length > 1) {
					String varName = variable[0];
					String varValue = variable[1].replaceAll("^ *", "").replaceAll(" *$", "");
					isContent = false;
					Log.d("!!! VARLINE !!!", "(isContent :"+ isContent + ") (varName : "+varName +") (varvalue : "+varValue+")");
					if ( varName.equals("Type")) {
						type = varValue;
						if ( type.equals("Create") || type.equals("Comment") || type.equals("Correspond")) {
							hasContent = true;
						}
						else {
							hasContent = false;
						}
					}
					if ( varName.equals("Content")) {
						content=strLine.replaceAll("^[^:]+:","") + "\n";
						isContent = true;
					}
				}
				
			}
			
			/* ligne avec le contenu de content */
			if ( Pattern.matches("^ {3}.*", strLine) && isContent== false) {
				Log.d("!!! CONTENT LINE !!!",strLine);
				if ( !strLine.matches("^ *>.*")) {
					content += strLine.replaceAll("^ {3}", "") +"\n";
				}
			}
		}
		
	}
	
	public String getContent(){
		return content;
	}
	
	public String getType() {
		return type;
	}
	
	public Boolean hasContent() {
		return hasContent;
	}
	
}
